package com.ruoyi.users.service.impl;

import java.util.List;

import com.ruoyi.tracks.domain.Tracks;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.users.mapper.UserTopTagsMapper;
import com.ruoyi.users.domain.UserTopTags;
import com.ruoyi.users.service.IUserTopTagsService;

/**
 * 用户ToptagService业务层处理
 * 
 * @author lin
 * @date 2025-03-10
 */
@Service
public class UserTopTagsServiceImpl implements IUserTopTagsService 
{
    @Autowired
    private UserTopTagsMapper userTopTagsMapper;

    /**
     * 查询用户Toptag
     * 
     * @param userId 用户Toptag主键
     * @return 用户Toptag
     */
    @Override
    public List<UserTopTags> selectUserTopTagsByUserId(Long userId)
    {
        return userTopTagsMapper.selectUserTopTagsByUserId(userId);
    }

    /**
     * 查询用户Toptag列表
     * 
     * @param userTopTags 用户Toptag
     * @return 用户Toptag
     */
    @Override
    public List<UserTopTags> selectUserTopTagsList(UserTopTags userTopTags)
    {
        return userTopTagsMapper.selectUserTopTagsList(userTopTags);
    }

    /**
     * 新增用户Toptag
     * 
     * @param userTopTags 用户Toptag
     * @return 结果
     */
    @Override
    public int insertUserTopTags(UserTopTags userTopTags)
    {
        return userTopTagsMapper.insertUserTopTags(userTopTags);
    }

    /**
     * 修改用户Toptag
     * 
     * @param userTopTags 用户Toptag
     * @return 结果
     */
    @Override
    public int updateUserTopTags(UserTopTags userTopTags)
    {
        return userTopTagsMapper.updateUserTopTags(userTopTags);
    }

    /**
     * 批量删除用户Toptag
     * 
     * @param userIds 需要删除的用户Toptag主键
     * @return 结果
     */
    @Override
    public int deleteUserTopTagsByUserIds(Long[] userIds)
    {
        return userTopTagsMapper.deleteUserTopTagsByUserIds(userIds);
    }

    /**
     * 删除用户Toptag信息
     * 
     * @param userId 用户Toptag主键
     * @return 结果
     */
    @Override
    public int deleteUserTopTagsByUserId(Long userId)
    {
        return userTopTagsMapper.deleteUserTopTagsByUserId(userId);
    }

    /**
     * 查询带有特定标签的歌曲并按播放次数倒序排序
     *
     * @param tagId 标签ID
     * @return 歌曲列表
     */
    @Override
    public List<Tracks> selectSongsByTagId(Long tagId) {
        return userTopTagsMapper.selectSongsByTagId(tagId);
    }
}
